package com.capgemini.rdlgae.domain

import java.text.SimpleDateFormat;
import java.io.Serializable;

class Commande implements Serializable {

	def commandeService
	
	Entree entree
	Plat plat
	Dessert dessert
	Utilisateur utilisateur
	Date dateCommande
	String commentaire
	BigDecimal total
	boolean envoyee
	Date dateCreated
	Date lastUpdated
	
	def beforeInsert = {
		
		total = commandeService.calculerTotal(entree, plat, dessert);
		log.info "Calcul du total avant enregistrement : ${total}"
	}
	
	def beforeUpdate = {
		total = commandeService.calculerTotal(entree, plat, dessert);
		log.info "Calcul du total avant mise à jour : ${total}"
	}
	
	
	static belongsTo = [utilisateur:Utilisateur, facture:Facture]
	
	static constraints = {
		
		
		plat()
		entree(nullable: true)
		dessert(nullable: true)
		dateCommande()
		utilisateur()
		facture(nullable: true)
		total(nullable: true)
		commentaire(nullable: true)
	
	}
	
	String toString(){
		
		SimpleDateFormat sdf = new SimpleDateFormat("EEEE d MMMM");
		StringBuffer sb = new StringBuffer();
		sb.append("Commande du ");
		sb.append(sdf.format(dateCommande));
		sb.append(" pour un total de ");
		sb.append(total);
		sb.append(" €");
		return sb.toString();
	}
}
